<template>
  <div>
    <!-- 获取token并保存到浏览器内部存储，从而可以在handler.html中得到token，
    因此该页面和hadler.html需要位于同一服务器 -->
  </div>
</template>

<script>
import { interface_ip_port,getParams,clickA,isEmpty } from "../services/addr.config";
export default {
  name: "Handler",
  data() {
    return {
      code: "",
    };
  },
  mounted() {
    // 从url中获取code
    this.code = getParams("code");
    console.log("微信code====>", this.code);
    // 获取token保存到loaclStorage
    this.getTokenByCode();
  },
  methods: {
    // 通过微信认证时的code获取token
    getTokenByCode() {
      console.log("微信code", this.code);
      this.$axios
        .get(`${interface_ip_port}/sys/wx/token`, {
          params: {
            code: this.code,
          },
        })
        .then((res) => {
          console.log(res);
          if (res.data.success && res.data.code != 500) {
            // 请求成功后保存token
            localStorage.setItem(
              "zhqh-pro-token",
              JSON.stringify(res.data.result.token)
            );
            console.log("获取的token：", res.data.result.token);
            // Vuex 保存用户信息 | 部门信息
            this.$store.commit("user/setUserInfo", res.data.result.userInfo);
            this.$store.commit("user/setDepartments", res.data.result.departs);
            this.$store.dispatch("user/getPositionById"); // 拿到职务信息
            // 这里拿到路由后进行的跳转,但是页面中的菜单还是没有显示
            this.$store.dispatch("user/getButtonRights"); // 拿到按钮权限
            this.$store.dispatch("user/getMenuRights"); // 拿到路由权限
            console.log("============已请求token并保存===================");
            // 保存token以及相关用户信息后就可以跳转任务办理页面了（url在Handler.vue组件中已经存储与localstorage）
            let handlePageUrl = JSON.parse(
              localStorage.getItem("handlePageUrl")
            );
            //alert(handlePageUrl);
            if (!isEmpty(handlePageUrl)) {
              clickA(handlePageUrl);
            } else {
              alert("未找到任务，请重试！");
            }
          } else {
            alert(res.data.message);
          }
        })
        .catch((error) => {
          console.log(error);
          alert("请求出错，请重试！");
        });
    },
  },
};
</script>

<style>
</style>
